Add SSE4 to babl-cpuaccel
authorDaniel Sabo <DanielSabo@gmail.com>
Sun, 20 Dec 2015 11:36:51 +0000 (03:36 -0800)
committerDaniel Sabo <DanielSabo@gmail.com>
Mon, 21 Dec 2015 02:05:55 +0000 (18:05 -0800)
babl/babl-cpuaccel.c
babl/babl-cpuaccel.h

index 3445cf6c628a0d7957aeb2842089a5a91cba2510..4e1683e8702740f32d74414dfcee3e5282e64bfc 100644 (file)
@@ -114,7 +114,11 @@ enum
 
 enum
 {
-  ARCH_X86_INTEL_FEATURE_PNI      = 1 << 0
+  ARCH_X86_INTEL_FEATURE_PNI      = 1 << 0,
+  ARCH_X86_INTEL_FEATURE_SSSE3    = 1 << 9,
+  ARCH_X86_INTEL_FEATURE_SSE4_1   = 1 << 19,
+  ARCH_X86_INTEL_FEATURE_SSE4_2   = 1 << 20,
+  ARCH_X86_INTEL_FEATURE_AVX      = 1 << 28
 };
 
 #if !defined(ARCH_X86_64) && (defined(PIC) || defined(__PIC__))
@@ -234,6 +238,12 @@ arch_accel_intel (void)
 
     if (ecx & ARCH_X86_INTEL_FEATURE_PNI)
       caps |= BABL_CPU_ACCEL_X86_SSE3;
+
+    if (ecx & ARCH_X86_INTEL_FEATURE_SSSE3)
+      caps |= BABL_CPU_ACCEL_X86_SSSE3;
+
+    if (ecx & ARCH_X86_INTEL_FEATURE_SSE4_1)
+      caps |= BABL_CPU_ACCEL_X86_SSE4_1;
 #endif /* USE_SSE */
   }
 #endif /* USE_MMX */
@@ -399,7 +409,11 @@ arch_accel (void)
 
 #ifdef USE_SSE
   if ((caps & BABL_CPU_ACCEL_X86_SSE) && !arch_accel_sse_os_support ())
-    caps &= ~(BABL_CPU_ACCEL_X86_SSE | BABL_CPU_ACCEL_X86_SSE2);
+    caps &= ~(BABL_CPU_ACCEL_X86_SSE   |
+              BABL_CPU_ACCEL_X86_SSE2  |
+              BABL_CPU_ACCEL_X86_SSE3  |
+              BABL_CPU_ACCEL_X86_SSSE3 |
+              BABL_CPU_ACCEL_X86_SSE4_1);
 #endif
 
   return caps;
index e701e2afdd14525ae5369e463a0dea7ca5beca55..57eb1184c94f3af1e2f9293aa6eda93bcfe52c8c 100644 (file)
@@ -30,6 +30,8 @@ typedef enum
   BABL_CPU_ACCEL_X86_SSE     = 0x10000000,
   BABL_CPU_ACCEL_X86_SSE2    = 0x08000000,
   BABL_CPU_ACCEL_X86_SSE3    = 0x02000000,
+  BABL_CPU_ACCEL_X86_SSSE3   = 0x00800000,
+  BABL_CPU_ACCEL_X86_SSE4_1  = 0x00400000,
 
   /* powerpc accelerations */
   BABL_CPU_ACCEL_PPC_ALTIVEC = 0x04000000,